# ------------------------------------多选下拉框操作-----------------------------------------

import time

from public.action import *
from public.business import *
from public.testData import *

# 打开后台页面
# 登录admin
# 点击“系统管理”
# 点击“客户设置”
# 新客户注册验证选择“注册邮箱验证”
# 新客户注册验证选择“无需验证”
# 新客户注册验证选择“注册邮箱验证”
# 新客户注册验证选择“人工审核验证”
dr = openBrowser(urlAdmin)  # 定义变量dr，使用自建函数openBrowser，打开变量urlAdmin中储存的网址，并返回给dr
DBshopLoginAdmin(dr)  # 使用自建函数DBshopLoginAdmin(dr)，登入DBshop网站
DBshopEnterMenu2(dr, "系统管理", "客户设置")  # 使用自建函数DBshopEnterMenu2，进入二级菜单"系统管理"-->"客户设置"
# 1、直接定位select标签下的option标签
time.sleep(2)  # 通过time.sleep函数，对网页进行强制强制等待 2 秒
dr.find_element_by_xpath('//select[@id="register_audit"]/option[2]').click()  # 使用xpath标准写法定位到id="register_audit"的select标签下的第二个option标签，执行点击操作
# 2、直接通过option标签的文本定位
time.sleep(2)  # 通过time.sleep函数，对网页进行强制强制等待 2 秒
dr.find_element_by_xpath('//option[text()="无需验证"]').click()  # 使用xpath文本表达式的写法定位到文本为："无需验证"的option标签，执行点击操作
# 3、webdriver提供了一个Select类用于操作下拉框
from selenium.webdriver.support.select import Select  # 在selenium文件下的webdriver文件下的support文件下的select文件中，引入Select函数

obj = dr.find_element_by_id("register_audit")  # 设置变量obj，定位到id为"register_audit"的标签，将值返回到变量obj中
s = Select(obj) # 设置变量s=创建函数select与变量obj进行连接
print(type(s))
time.sleep(2)  # 通过time.sleep函数，对网页进行强制强制等待 2 秒
s.select_by_index(1)  # 根据下标选择第2个选项
time.sleep(2)  # 通过time.sleep函数，对网页进行强制强制等待 2 秒
s.select_by_value("audit")  # 通过属性为value="audit"来定位选择
time.sleep(2)  # 通过time.sleep函数，对网页进行强制强制等待 2 秒
s.select_by_visible_text("无需验证")  # 通过标签中的文本（无需验证）来定位选择
